A Software Development Life Cycle (SDLC) environment poses many challenges to a Release Integration Team. A consistent problem frequently occurs when Development releases code to a target environment, for example QA (Quality Assurance), Staging or Production, and the code fails to run properly in the new target environment. The software code runs well in the Development Environment, but fails to run in a different computing environment, e.g., a Production Environment. This common situation creates a lot of time consuming “churn” between the Development team and the Release Integration Team, as differences in computing environments are often very difficult to identify. The problem is further exacerbated in an organization where some of the environments are virtualized, meaning they are running in a logical computing environment as opposed to a physical computing environment. There are different types of computing environments that support the business, such as Development environments, QA environments, Staging environments, and Production environments. The computing needs of each of these organizational business units can be supported by either a physical, a logical, or a combination of both physical and logical computing environments.
The problem can arise from many different possibilities of code and environmental sources in the Development, QA, Staging and Production environments. Examples of different sources include libraries, plug-ins, open source tools, commercial tools, locally grown code, installed application packages, Operating System release versions, and machine configuration parameters, which can include memory footprint, application configuration settings, or system tuneables. The time it takes to resolve these incompatibilities has a negative impact on the productivity of the Release Team personnel as resolving the incompatibilities is predominantly a manual process. The manual process slows down product release and is friction to the efficiency of the needs and objectives of the business.